1. Field of the Invention
This invention relates generally to computer peripheral devices. More specifically, techniques for efficiently embedding information in a user input device, such as a keyboard membrane, are described.
2. Description of the Related Art
FIG. 1 is shows a conventional keyboard 100 having keyboard membrane 102. Keyboard membrane 102 has a layered structure including a lower resin sheet 104 and an upper resin sheet 106. Column contact pad(s) X0-X4 and a lower wiring pattern(s) 108 are formed on an upper surface of the lower resin sheet 104. Furthermore, row contact pad(s) Y0-Y4 and an upper wiring pattern(s) 110 are formed on a lower surface of the upper resin sheet 106. Taken together upper wiring pattern 110 and lower wiring pattern 108 form keyboard scanning matrix 112 having key 114 located at most of the row/column intersections. In this way, a user pressing a key (referred to as key press 116) will short together the respective row and column of scanning matrix 112. In order to identify the character appropriate to the key being pressed, the relevant key location vis a vis scanning matrix 112 must be quickly and accurately determined. Therefore, in order to identify the location of the key being pressed, each of column contact pads X0-X4 is sequentially asserted (i.e., by applying a voltage corresponding to either a HIGH or LOW value) for a period of time (column assertion period). During the period of time that a particular column conductor is asserted, each of the row contact pad Y0-Y4 are sensed (during a row sensing cycle). Since pressing a key results in shorting a single row to a single column (at least during the period of time that a user has maintained key press 116), the contact pad associated with the row on which the key being pressed is located will also be asserted (i.e., either HIGH or LOW) for a period of time at least as long as the period of time that the column associated with the key being pressed is asserted. Therefore, the single row contact pad that is determined to be asserted during the row scanning operation is used with the identification of the asserted column to provide the co-ordinates in scanning matrix 112 corresponding to key press 116.
Once the location of the key press 116 is determined, that information is passed to keyboard processor 118 by way of contacts 120 in tail 122. Keyboard processor 118 uses the location information to read a character map 124 that maps a key pad location with a character. However, many of today's keyboards are capable of multiple configurations where different keys can map to different characters. For example, keyboard 100 can be configured to act as an ANSI type keyboard, a JIS type keyboard, or a ISO type keyboard. Therefore, during boot up, keyboard processor 118 must detect the type of keyboard being used, communicate this information to the system so that the system can apply the appropriate conversion to the keycodes subsequently sent by the keyboard providing the correct correspondence between key location and character.
Information such as language type, special configuration and other important information (such as keyboard type) can be embedded on keyboard membrane 102 using discrete information embedding circuit126. Unfortunately, however, the information provided by information embedding circuit126 is typically used only once at the initialization of keyboard 100 to identify the type of keyboard being used and therefore the version of character map. Once that task has been accomplished, information embedding circuit126 remains unused thereafter. Therefore since information embedding circuit126 is used only once and only for the information contained therein, it especially important that the amount of membrane real estate and the number of contacts used to implement information embedding circuit126 be optimized for the amount of potential information provided.
Therefore, an efficient method, apparatus, and system for embedding information in a keyboard membrane is desirable.